home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / hardware / blizkick / modules / bppcfix.asm < prev    next >
Assembly Source File  |  1999-05-17  |  2KB  |  86 lines

  1. ; FILE: Source:modules/BPPCFix.ASM          REV: 0 --- Disable ppc.library of blizzppc
  2.  
  3. ;
  4. ; BPPCFix module for BlizKick
  5. ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  6. ; Written by Harry Sintonen.
  7. ;
  8. ; based on:
  9. ;
  10. ;** BPPCFix_kickcode.asm
  11. ;**
  12. ;** Disables ppc.library resident modules on Amigas with BPPC
  13. ;** Written in 1998 by Frank Wille <frank@phoenix.owl.de>
  14. ;**
  15. ;** V1.0  26-Dec-98
  16. ;**       created
  17. ;
  18. ;
  19. ;
  20.  
  21.     incdir    "include:"
  22.     include    "exec/types.i"
  23.     include    "exec/libraries.i"
  24.  
  25.     include    "exec/execbase.i"
  26.  
  27.     include    "blizkickmodule.i"    ; Some required...
  28.  
  29.     SECTION    MODULE,CODE
  30. _DUMMY_LABEL
  31.  BK_MOD BKMF_SingleMode,_end,(RTF_COLDSTART)<<24+37<<16+NT_UNKNOWN<<8+0,_name,_idstr,_init
  32.  
  33. ; Singlemode on,
  34. ; COLDSTART module, requires KS V37.x or better, module type NT_UNKNOWN, priority 0.
  35.  
  36. _init    movem.l    d0-a6,-(sp)
  37.     move.l    (4).w,a6
  38.  
  39.     jsr    (-$84,a6)        ; Forbid()
  40.  
  41.     move.l    (ResModules,a6),a0
  42.     move.l    a0,a1
  43.     bra.b    loop_end
  44. loop:
  45.     move.l    d0,(a1)+
  46.     bpl.b    1$
  47.     bclr    #31,d0
  48.     move.l    d0,a0
  49.     move.l    d0,a1
  50.     bra.b    loop_end
  51. 1$:    move.l    d0,a2
  52.  
  53. ; compare module name with "ppc.library"
  54.     move.l    (RT_NAME,a2),a2        ; name of current module
  55.     lea    (ppc_name,pc),a3
  56.     moveq    #12-1,d0
  57. 2$:    cmpm.b    (a2)+,(a3)+
  58.     dbne    d0,2$
  59.     bne.b    loop_end
  60.     subq.l    #4,a1            ; ppc.library found - remove module
  61.  
  62. loop_end:
  63.     move.l    (a0)+,d0
  64.     bne.b    loop
  65.  
  66.     clr.l    (a1)
  67.     jsr    (-$27c,a6)        ; CacheClearU()
  68.  
  69.     jsr    (-$8a,a6)        ; Permit()
  70.  
  71. exit    movem.l    (sp)+,d0-a6
  72.     rts
  73.  
  74. ppc_name
  75.     dc.b    'ppc.library',0
  76.  
  77. _name    dc.b    'BPPCFix',0
  78. _idstr    dc.b    'BPPCFix 1.0 (2.5.99)',0
  79.     CNOP    0,2
  80. _end
  81.  
  82.     SECTION    VERSION,DATA
  83.  
  84.     dc.b    '$VER: BPPCFix_MODULE 1.0 (2.5.99)',0
  85.  
  86.